#include<bits/stdc++.h>
using namespace std;

/*
【问题分析】
本程序用于计算：给定n个数字，所有非空子集的元素和的总和。例如：
输入：2个数字a,b → 子集为{a}, {b}, {a,b} → 总和 = a + b + (a+b) = 2a + 2b = (a+b)*2^(2-1)
输入：3个数字a,b,c → 总和 = (a+b+c)*2^(3-1) = 4a + 4b + 4c

【公式推导过程】
设输入n个元素，每个元素值为x₁,x₂,...,xₙ
观察每个元素在全部子集中出现的次数：
- 每个元素xᵢ出现在2^(n-1)个子集中（每个元素可选/不选，但至少需要包含一个元素）
  （证明：总子集数2ⁿ，非空子集数2ⁿ-1。固定包含xᵢ时，剩余n-1元素可选可不选，故包含xᵢ的子集数为2^(n-1)）
- 因此所有子集的元素和总和 = Σxᵢ * 2^(n-1) = (Σxᵢ) * 2^(n-1)

【数学归纳法验证】
基础情况：n=1时，总和x₁，公式给出x₁*2^(0)=x₁ ✔️
假设n=k时成立，则n=k+1时：
新元素xₖ₊₁加入后，总子集数变为2^(k+1)-1
总和 = 原k个元素的总和*2（每个原有子集可包含/不包含xₖ₊₁） + xₖ₊₁*(2^k)
      = [原总和*2^(k-1)]*2 + xₖ₊₁*2^k
      = 原总和*2^k + xₖ₊₁*2^k
      = (原总和 + xₖ₊₁)*2^k = 新总和*2^k ✔️
*/

int main() {
    long long input, i = 0, sum = 0;  // i记录输入数字个数，sum记录所有数字的总和
    
    // 循环读取输入直到EOF（Windows下Ctrl+Z，Linux/Mac下Ctrl+D）
    while (cin >> input) {
        sum += input;  // 累加所有输入数字
        i++;           // 统计输入数字个数
    }
    
    /* 
    计算最终结果：
    - 根据推导公式：结果 = sum * 2^(i-1)
    - 使用pow函数计算幂次，注意：
       1. pow(2, n)在n较大时可能产生浮点误差，但题目中long long可容纳结果范围时强制转换是安全的
       2. 更优解法可用位运算：1LL << (i-1)，避免浮点运算
    */
    cout << (long long)(sum * pow(2, i - 1));
    
    return 0;
}

/*
【复杂度分析】
时间复杂度：O(n) —— 只需一次遍历输入
空间复杂度：O(1) —— 仅使用固定数量的变量

【测试案例】
输入：2 3 → 子集和总和 = (2+3)*2^(2-1) = 5*2=10
验证：{2}=2, {3}=3, {2,3}=5 → 2+3+5=10 ✔️

输入：1 4 5 → 总和=(1+4+5)*2^(3-1)=10*4=40
验证：所有非空子集和之和 = 1+4+5+(1+4)+(1+5)+(4+5)+(1+4+5) = 40 ✔️
*/